diff options
Diffstat (limited to 'src/app/(main)/websites/[websiteId]/sessions/SessionStats.tsx')
| -rw-r--r-- | src/app/(main)/websites/[websiteId]/sessions/SessionStats.tsx | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/app/(main)/websites/[websiteId]/sessions/SessionStats.tsx b/src/app/(main)/websites/[websiteId]/sessions/SessionStats.tsx new file mode 100644 index 0000000..e25be9a --- /dev/null +++ b/src/app/(main)/websites/[websiteId]/sessions/SessionStats.tsx @@ -0,0 +1,21 @@ +import { useMessages } from '@/components/hooks'; +import { MetricCard } from '@/components/metrics/MetricCard'; +import { MetricsBar } from '@/components/metrics/MetricsBar'; +import { formatShortTime } from '@/lib/format'; + +export function SessionStats({ data }) { + const { formatMessage, labels } = useMessages(); + + return ( + <MetricsBar> + <MetricCard label={formatMessage(labels.visits)} value={data?.visits} /> + <MetricCard label={formatMessage(labels.views)} value={data?.views} /> + <MetricCard label={formatMessage(labels.events)} value={data?.events} /> + <MetricCard + label={formatMessage(labels.visitDuration)} + value={data?.totaltime / data?.visits} + formatValue={n => `${+n < 0 ? '-' : ''}${formatShortTime(Math.abs(~~n), ['m', 's'], ' ')}`} + /> + </MetricsBar> + ); +} |